// SPDX-License-Identifier: GPL-2.0-or-later
// Copyright (c) 2023 Yevhen Babiichuk (DustDFG)

#ifndef _DOT_SORT_VIEW_IVIEW_HPP_
#define _DOT_SORT_VIEW_IVIEW_HPP_

#include <cstdint>
#include <vector>

namespace View
{

class IView
{
	protected:
		const uint8_t tubeSize;
		const uint8_t tubeCount;

	public:
		IView(uint8_t tubeSize, uint8_t tubeCount)
			: tubeSize(tubeSize)
			, tubeCount(tubeCount)
		{}
		virtual ~IView() = default;

		virtual void updateTube(uint8_t tubeIndex, const std::vector<uint8_t>& dots) = 0;
		virtual void draw() const = 0;
};

}

#endif
